Aller au contenu principal

Attraper des hackers avec un honeypot - Installation

· 9 minutes de lecture
Orkanyx
Orkanyx
Createur de cyberforge

Il nous a toujours été dit que, dans la cybersécurité, les attaquants ont toujours un coup d'avance. Ces derniers vont utiliser des failles et/ou techniques dont les défénseurs n'ont aucune idée.

Ainsi, pour réduire cet écart, les défenseurs ont trouvé une manière qui permet à la fois de les protéger, mais aussi de comprendre les nouvelles techniques utilisées par les attaquants. Cette méthode est appelée honeypot.

Un honeypot est un système, volontairement laissé vulnérable et facilement accessible par les attaquants. L'objectif est de récolter des IOCs (Indicators of Compromise) et des IOAs (Indicators of Attack) pour comprendre les techniques utilisées par les attaquants.

Dans cet article, nous allons aborder le déploiement de la solution Tpot crée par la société Deutsche Telekom :

Cette solution permet d'avoir un honeypot "clés en main", ayant différents "senseurs" qui s'appuieront sur différents services pour collecter un maximum de données.

Prérequis

Dans la page github, Tpot CE mentionne les préequis suivants pour une "hive" (senseurs + analyseur de logs) :

Ma configuration

J'ai choisi pour ma part la configuration suivante :

  • Hosteur : DigitalOcean
  • Distribution : Ubuntu 24.10
  • CPU : 4vCPU
  • Stockage : 160GB

Donc en somme, je ne respecte pas les prérequis... Cependant, cela marche plutôt bien :

img.png

Installation

Une fois que vous avez votre installation clean de votre distribution, créez un nouvel utilisateur et ajoutez le dans le groupe sudo :

Ajout de l'utilisateur hpot
adduser hpot
usermod -aG sudo hpot
User "tpot"

L'utilisateur "tpot" est créé par l'installateur de tpot, il ne faut donc pas utliser ce nom d'utilisateur.

Puis, connectez-vous avec cet utilisateur et lancer l'installation :

Exécution du script d'installation de tpot
su hpot
cd ~
env bash -c "$(curl -sL https://github.com/telekom-security/tpotce/raw/master/install.sh)"

Suivez les instructions de l'installateur. A un moment ce dernier va vous proposer de choisir certains services que vous voulez utiliser (en somme des honeypots). Choisissez celui qui vous conviennent parmi le tableau suivant :

Tableau récapitulatif
PortProtocolDirectionDescriptionServices émulésDescription résuméeGitHub Link
80, 443tcpoutgoingT-Pot Management: Install, Updates, Logs (i.e. OS, GitHub, DockerHub, Sicherheitstacho, etc.)Gestion de T-PotPlateforme de gestion pour les honeypots T-Pot.T-Pot GitHub
11434tcpoutgoingLLM based honeypots: Access your Ollama installationModèles de langage (LLM)Honeypot basé sur des modèles de langage pour interagir avec Ollama.Ollama GitHub
64294tcpincomingT-Pot Management: Sensor data transmission to hive (through NGINX reverse proxy) to 127.0.0.1:64305Transmission de donnéesTransmet les données des capteurs T-Pot vers une ruche.T-Pot GitHub
64295tcpincomingT-Pot Management: Access to SSHSSHAccès SSH pour la gestion de T-Pot.T-Pot GitHub
64297tcpincomingT-Pot Management: Access to NGINX reverse proxyNGINXAccès au reverse proxy NGINX pour T-Pot.T-Pot GitHub
5555tcpincomingHoneypot: ADBHoneyAndroid Debug Bridge (ADB)Émule un service ADB pour capturer les attaques sur les appareils Android.ADBHoney GitHub
22tcpincomingHoneypot: Beelzebub (LLM required)SSHHoneypot SSH avec intégration de modèles de langage (LLM).Beelzebub GitHub
5000udpincomingHoneypot: CiscoASACisco ASA (VPN)Émule un service VPN Cisco ASA pour capturer les attaques.CiscoASA GitHub
8443tcpincomingHoneypot: CiscoASACisco ASA (HTTPS)Émule un service HTTPS Cisco ASA pour capturer les attaques.CiscoASA GitHub
443tcpincomingHoneypot: CitrixHoneypotCitrix (HTTPS)Émule un service Citrix pour capturer les attaques sur les serveurs Citrix.CitrixHoneypot GitHub
80, 102, 502, 1025, 2404, 10001, 44818, 47808, 50100tcpincomingHoneypot: ConpotICS/SCADA (Automates industriels)Émule des systèmes industriels (ICS/SCADA) pour capturer les attaques.Conpot GitHub
161, 623udpincomingHoneypot: ConpotSNMP, IPMIÉmule des protocoles SNMP et IPMI pour capturer les attaques.Conpot GitHub
22, 23tcpincomingHoneypot: CowrieSSH, TelnetÉmule des services SSH et Telnet pour capturer les attaques.Cowrie GitHub
19, 53, 123, 1900udpincomingHoneypot: DdospotChargen, DNS, NTP, SSDPÉmule des services vulnérables pour capturer les attaques DDoS.Ddospot GitHub
11112tcpincomingHoneypot: DicompotDICOM (Imagerie médicale)Émule un service DICOM pour capturer les attaques sur les systèmes médicaux.Dicompot GitHub
21, 42, 135, 443, 445, 1433, 1723, 1883, 3306, 8081tcpincomingHoneypot: DionaeaFTP, SMB, HTTP, SQL, etc.Émule plusieurs services pour capturer les attaques sur des protocoles variés.Dionaea GitHub
69udpincomingHoneypot: DionaeaTFTPÉmule un service TFTP pour capturer les attaques.Dionaea GitHub
9200tcpincomingHoneypot: ElasticpotElasticsearchÉmule un service Elasticsearch pour capturer les attaques.Elasticpot GitHub
22tcpincomingHoneypot: EndlesshSSHÉmule un service SSH pour capturer les attaques avec une connexion interminable.Endlessh GitHub
80, 443, 8080, 8443tcpincomingHoneypot: Galah (LLM required)HTTP, HTTPSHoneypot HTTP/HTTPS avec intégration de modèles de langage (LLM).Galah GitHub
8080tcpincomingHoneypot: Go-potHTTPÉmule un service HTTP pour capturer les attaques.Go-pot GitHub
80, 443tcpincomingHoneypot: H0neytr4pHTTP, HTTPSÉmule des services HTTP/HTTPS pour capturer les attaques.H0neytr4p GitHub
21, 22, 23, 25, 80, 110, 143, 443, 993, 995, 1080, 5432, 5900tcpincomingHoneypot: HeraldingFTP, SSH, Telnet, SMTP, HTTP, etc.Émule plusieurs services pour capturer les attaques sur des protocoles variés.Heralding GitHub
3000tcpincomingHoneypot: HoneyamlHTTPÉmule un service HTTP pour capturer les attaques avec des fichiers YAML.Honeyaml GitHub
21, 22, 23, 25, 80, 110, 143, 389, 443, 445, 631, 1080, 1433, 1521, 3306, 3389, 5060, 5432, 5900, 6379, 6667, 8080, 9100, 9200, 11211tcpincomingHoneypot: qHoneypotsFTP, SSH, Telnet, SMTP, HTTP, LDAP, etc.Émule une large gamme de services pour capturer les attaques.qHoneypots GitHub
53, 123, 161, 5060udpincomingHoneypot: qHoneypotsDNS, NTP, SNMP, SIPÉmule des services UDP pour capturer les attaques.qHoneypots GitHub
631tcpincomingHoneypot: IPPHoneyIPP (Impression)Émule un service IPP pour capturer les attaques sur les imprimantes.IPPHoney GitHub
80, 443, 8080, 9200, 25565tcpincomingHoneypot: Log4PotHTTP, HTTPS, Elasticsearch, MinecraftÉmule des services vulnérables à Log4Shell.Log4Pot GitHub
25tcpincomingHoneypot: MailoneySMTPÉmule un service SMTP pour capturer les attaques sur les serveurs de messagerie.Mailoney GitHub
2575tcpincomingHoneypot: MedpotDICOM (Imagerie médicale)Émule un service DICOM pour capturer les attaques sur les systèmes médicaux.Medpot GitHub
9100tcpincomingHoneypot: MiniprintImpressionÉmule un service d'impression pour capturer les attaques.Miniprint GitHub
6379tcpincomingHoneypot: RedishoneypotRedisÉmule un service Redis pour capturer les attaques.Redishoneypot GitHub
5060tcp/udpincomingHoneypot: SentryPeerSIPÉmule un service SIP pour capturer les attaques sur les systèmes VoIP.SentryPeer GitHub
80tcpincomingHoneypot: Snare (Tanner)HTTPÉmule un service HTTP pour capturer les attaques avec des interactions avancées.Snare GitHub
8090tcpincomingHoneypot: WordpotHTTPÉmule un service HTTP pour capturer les attaques sur les blogs WordPress.Wordpot GitHub
astuce

Une fois l'installation terminée, si vous étiez connecté via SSH sur votre VM, vous perderez peut être la connexion vu qu'un honeypot à pris votre place.

Voici les nouveaux ports qui vous permettront de vous connecter :

  • SSH : 64295
  • NGINX : 64297

Ainsi il est recommandé de soit :

  • Implémenter un VPN pour accéder à ces 2 ports uniquement depuis votre machine, mais cela va utiliser plus de ressources.
  • Whitelister votre IP via un firewall (UFW, iptables, etc.)

Prise en main

Une fois connecté à votre VM, vous pouvez accéder à l'interface web de Tpot via le port 64294 :

Vous avez alors accès a plusieurs services :

  • Attack map : Carte des attaques en cours
  • Cyberchef : Outil pour décoder des données
  • Elasticvue : Management des nodes/clusters
  • Kibana : Dashboards + visualisation des logs$
  • Spiderfoot : Outil de reconnaissance

Ce qui va nous intéresser dans un premier temps, c'est le service Kibana. Nous avons comme page d'acceuil le dashboard général :

Il y a également un dashboard pour chaque honeypot, permettant de voir les attaques en cours, les IP des attaquants, les payloads utilisés, etc.

Ici par exemple le dashboard de "Cowrie", un honeypot SSH :

Ou par exemple ici le dashboard de "Dionaea", un honeypot multi-protocoles :

Nous pouvons ensuite regarder les logs provenant de nos différents honeypots. Pour cela, il faut aller dans l'onglet "Discover" :

Vous pouvez alors voir les logs en temps réel, et les filtrer par honeypot, IP, payload, etc :

Nous pourrons ensuite filtrer et sélectionner ces logs avec du KQL (Kibana Query Language) pour les exporter et les analyser. Mais cela sera expliqué dans la partie 2 !